home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SPACE 2
/
SPACE - Library 2 - Volume 1.iso
/
program
/
519
/
read_me.txt
< prev
next >
Wrap
Text File
|
1991-02-24
|
23KB
|
501 lines
Turbo-Ass V1.1
©1989 Σ-soft
von Markus Fritze & Sören Hellwig
1.1 Einleitung
Nach langem hin und her haben wir uns entschlossen unser
Assembler-Paket als Shareware auf den Markt zu werfen. Der Assembler
wurde vormals durch OMIKRON.Software unter dem Namen OMIKRON.Assembler
verkauft. Die Shareware-Version ist jedoch eine erweiterte Version des
OMIKRON.Assemblers. Sie enthält weniger Fehler, weitere Features und
ist noch ein wenig schneller. Zum Paket gehört (natürlich) auch ein
Debugger, der Bugaboo (vormals OMIKRON.Debugger). Somit kann nun jeder
User in den Genuß eines schnellen und leistungsfähigen Assemblers und
Debuggers kommen; zumal es zwar viele Programmiersprachen als Shareware
bzw. PD gibt, aber noch keinen (vernünftigen) Assembler.
DIE FIRMA OMIKRON.SOFTWARE HAT NICHTS MIT DIESEM ASSEMBLER-PAKET ZU
TUN. Σ-SOFT IST ALLEINIGER INHABER ALLER RECHTE AM ASSEMBLER UND
DEBUGGER!
Dieser Text ist nicht als eine Anleitung gedacht, sondern nur als
Kurzeinführung in den Assembler. Die vollständig Anleitung auf ca. 240
Seiten gibt es bei den Autoren.
Zur Not kann auch das ST-Magazin 11/89 und 12/89 herangezogen werden.
Dort hat die Referenzkarte den Assembler und Debugger zum Thema.
Nachtrag: Es fehlen ziemlich viele Features in diesem READ_ME, es wird
mir einfach zu viel... (Markus)
1.2 Features des Turbo-Ass
-Einfache und durchdachte (!) Bedienung.
-Der Assembler übersetzt durchschnittlich 1 300 000 Zeilen pro Minute.
-Syntax-Check bereits bei der Eingabe. Teilweise sogar Semantik-Check!
Es werden sowohl Tippfehler, wie auch doppelt vergebene Symbolnamen
bereits bei der Eingabe gemeldet.
-Viele besonders leistungsfähige Funktionen des Editors, z.B. Suche
von Symbolen, Ersetzen von Symbolen, Einklappen vonProgrammteilen
(wie in GFA-Basic 3.0), u.v.a.m.
-Fantastische Kombination von Debugger und Assembler. Bei einem Absturz
eines Programms im Debugger kann der Assembler automatisch die
Absturzadresse in eine Zeilennummer umrechnen!!!
-Eigene Tastatur- und Bildschirmtreiber => selbst bei härtesten
Programmabstürzen funktionieren Assembler und Debugger noch.
-KEINE Makros!!!
-u.v.a.m.
1.3 Was ist Shareware
-Jeder kann/darf/muß/soll den Turbo-Ass kopieren! Dabei sollten aber
stets ALLE (!) Dateien mitkopiert werden.
-Wem den Assembler gefällt, sollte uns fairerweise 50DM überweisen. Das
hat für alle Parteien vorteile:
Für uns:
-Wir arbeiten nicht ganz umsonst (im Turbo-Ass stecken 3 "Mannjahre"
Arbeit)
Für den User:
-Er bekommt eine 240 Seiten starke Anleitung
-Er bekommt die neuste Version mit persönlicher Seriennummer
-Er bekommt das erste Update kostenlos
-Er erhält bei gefundenen Fehlern eine fehlerfreie Version
-Er kann sich bei Problemen an uns wenden
-Er bekommt für jeden User, der bei Registierung seine Seriennummer
angibt, 10DM (allerdings maximal 10 mal, wir wollen keine
PD-Vertriebe finanzieren). Das Geld ist also eine "Entschädigung"
für das Vorführen des Assemblers und das Kopieren.
-Nochmal: Läßt sich jemand registrieren, so gibt er die Seriennummer
des vorher benutzen Assemblers an. Der User, dem diese Seriennummer
gehört, bekommt vom uns 10DM. Alles klar?
Wer diese Angebot annehmen will, wende sich bitte an:
Markus Fritze
Birkhahnkamp 38
2000 Norderstedt 1
Tel: 040/5223955
(ab 18Uhr, auch am Wochenende (NIE VOR 12UHR!!!))
BLZ: 20069111, Norderstedter Bank
Kontonummer: 407860
Ich bitte allerdings teilweise um etwas Geduld; ich hoffe die meiste
Post am selben Tag zu erledigen, wenn aber keine Anleitungen mehr da
sind oder wenn wir gerade einige Neuerungen implementieren, kann es
schon mal etwas dauern (Wenn nach 2-3 Wochen allerdings nix passiert
kann eine Anfrage klären, ob die Post auch angekommen ist).
1.4 Hardwarevorraussetzungen
Atari ST mit 512k, wobei allerdings erst ab 1Mb Assembler und Debugger
gemeinsam im RAM gehalten werden können, was seinerseits wieder ein
sehr wirksames Debugging erst ermöglicht. Die hohe Auflösung bietet
sich wohl eher an, als die mittlere Auflösung (Ist einfach
augenfreundlicher); aber der Turbo-Ass läuft sowohl in Farbe, wie auch
in S/W.
1.5 Installation
TURBOASS.PRG, TURBOASS.CFG, TURBOASS.DAT, BUGABOO.PRG und CALL.PRG auf
eine Disk, bzw. in einen Ordner kopieren. Das war's.
1.6 Zu den Autoren
Sören Hellwig und ich (Markus Fritze) sind zur Zeit beide 21 Jahre alt
(nein, nicht zusammen...) und studieren technische Informatik an der
FH-Wedel bei Hamburg. Deswegen bitte wir auch teilweise um etwas
Geduld, wenn Anfragen nach Updates, etc. kommen; das Studium geht
leider vor. Zudem beantworte ich jeden Brief, der Rückporto beinhaltet.
Post ohne Rückporto wird nur in Ausnahmefällen beantwortet (Zur
Registrierung ist KEIN Rückporto nötig!)
1.7 Haftung/Rechte
Alle Rechte am Turbo-Ass liegen bei Σ-soft. Wobei jeder seinen
Assembler beliebig kopieren darf. Auch das Upload in Mailboxen ist
erlaubt. Der Turbo-Ass und das Handbuch wurden mit größter Sorgfalt
erstellt. Leider sind Fehler nie auzuschließen, deswegen möchten wir
sie darauf hinweisen, daß wir weder eine Garantie für die
Fehlerfreiheit geben, noch die Haftung für irgendwelche Folgen, gleich
ob durch Fehler im Handbuch, in der Software oder in der Hardware
verursacht, übernehmen können. Es wird wohl jeder verstehen, daß wir
keine besondere Begeisterung verspüren, wenn jemand behauptet, der
Assembler habe im seine Platte mit Sourcetexten im Werte von mehreren
Millionen Mark zerstört, uns auf Schadenersatz verklagen will. Also:
Benutzung auf eigene Gefahr! (Dieser Abschnitt gilt wohl bei allen
Softwarefirmen.
2 Der Assembler
2.1 Benutzeroberfläche
Die Benutzeroberfläche ist nicht von GEM o.ä. abhängig, d.h. neu
programmiert, das hat den Vorteil, daß der Assembler sicherer gegen
Abstürze und auch schneller ist. Zudem konnten einige nette Features
implementiert werden. Trotzdem sollte die Umstellung von GEM wohl nicht
ins Gewicht fallen. Die kleinen Buchstaben in den Buttons bewirken mit
ALT zusammen gedrückt, das Anklicken des Buttons wie mit der Maus.
2.2 Die Maus im Assembler
Man kann mit der Maus eine ganze Menge Dinge machen, hier sei jedoch
nur die Benutzung im Assembler erklärt:
Im Sourcetext:
Linke Maustaste:
Einfachklick: Cursor setzen
langer Klick: Block markieren (mit Scrollen)
Doppelklick : Sprung zur Definition des angeklickten Symbols
Rechte Maustaste:
Einfachklick: Sourcetext scrollen (nur am Rand klicken!)
Doppelklick : Formel in den Rechner übernehmen
In der Statuszeile:
einfach alles mal mit links bzw. rechts anklicken...
2.3 Der Editor
Jede eingegebene Zeile wird automatisch auf ihren Syntax und teilweise
auch auf die Semantik überprüft. Wenn die Zeile fehlerfrei ist, wird
sie sofort formatiert ausgegeben. Bei einem Eingabefehler wird in der
Statuszeile die Fehlermeldung angezeigt.
2.4 Besonderheiten
Als Adressierungsart wird auch "absolut short" direkt unterstützt. Dazu
ist hinter der Adresse ".w" anzugeben. Line-A-Routinen können mit
"LINEA #Nummer" eingegeben werden. Der Assembler wandelt nicht-Motorola
Eingaben wenn möglich automatisch in das Motorola-Format um.
2.5 Optimierungen
Der Assembler kann einige Optimierungen selbstständig finden. Dazu
gehören:
Absolut lang -> relativ
relativ -> relativ short
Absolut lang -> PC-relativ
MOVE.L #xx,A0 -> LEA xx,A0 (wenn dannach PC-relativ was bringt)
MOVE.L #xx,-(SP)-> PEA xx,A0 (wenn dannach PC-relativ was bringt)
Ferner werden einige für C-Compiler typische Sprünge gefunden (z.B. 2
aufeinanderfolgende BRA, wobei das 2.BRA nie angesprungen werden kann)
Wenn der Assembler optimieren kann, erscheint nach dem Assemblieren ein
Button "ANPASSEN", welcher die Optimierungen im Sourcetext vornimmt.
Dabei kann auch zurück-"optimiert" werden, wenn dies nötig sein sollte.
2.6 Formeln
Alles was so Standard ist: + - * / ! (log.NOT) ~ (NOT bzw. EOR)
<< (SHL) >> (SHR) | (OR) & (AND)
sowie Vergleiche
Als Zahlenbasis sind: . oder nix : Dezimal
$ : Hexadezimal
% : Binär
" oder ' : ASCII
Als interne Variablen sind ^^DATE (GEMDOS-Datum), ^^TIME (GEMDOS-Zeit)
* (akt.PC), ^^RSCOUNT (akt.Wert des RS-Zählers) und ^^SYMTAB (<>0, wenn
Symboltabelle erzeugt wird)
Symbole sind max.23 Zeichen lang. Alle Zeichen sind signifikant.
Erlaubt sind auch Umlaute und alle anderen Zeichen > 126.
2.7 Tastaturkommandos
Cursortasten, Backspace, etc. wie gewohnt
CTRL-Y, CTRL-B, etc. wie in TEMPUS
CTRL-D verdoppelt die Cursorzeile.
CTRL-M/ALT-M ermöglicht das Verschieben der Zeile.
CTRL-W ändert die Zahlenbasis der Zahl unter dem Cursor
CTRL-U markiert alle Zeichen mit Warnungen, in welchen ein Symbol
definiert ist, welches nirgends benutzt wird. Damit kann man prima
unbenutzt Unterprogramme finden!
ALT-Zehnerblock wie bei MS-DOS
ESC+Buchstabe Abkürzung für einen Befehl
CTRL-ESC Tastaturmakro beginnen. Dann zu belegende Taste drücken. Alle
folgenden Tasten (nicht die Maus!) werden aufgezeichnet. Mit ALT-ESC
wird die Definition abgeschlossen. Die belegte Taste kann mit CTRL-ESC,
Taste, ALT-ESC wieder freigegeben werden.
2.8 Ein paar Worte zu den Drop-Down-Menüs
Mit "Laden..." kann auch ein ASCII-Text eingeladen werden. Er wird
dabei automatisch ins interne Format gewandelt.
"Symbol suchen..." und "Symbol ersetzen..." ermöglichen das schnelle
Finden bzw. schnelle Ersetzen von Symbolen. Dabei können z.B. alle
Symbole gefunden werden, die mit "M" anfangen (Maske:"M*"), ohne daß
jeder MOVE-Befehl gefunden wird (wie bei ASCII-Editoren üblich).
"Sprung zu Zeile.." ermöglich auch das Springen zu Symboldefinitionen
(Eingabe:z.B."M*").
Die Dialogboxen im "Einstellungen" Menü sind zum Teil selbsterklärend,
der Rest ist entweder unwichtig oder zu kompliziert, als daß er hier
erklärt werden könnte.
2.9 Der Assembler
Wird mit F1 aufgerufen. Treten bei der Assemblierung Fehler auf, werden
alle fehlerhaften Zeilen markiert. Nach der Assemblierung kann man dann
mit CTRL-J bzw. Shift-CTRL-J von Fehler zu Fehler springen. Der
Assembler speichert die Fehler, die Cursorposition, die Marker etc.
übrigens mit dem Sourcetext ab!
In der Dialogbox nach (!) der Assemblierung, können noch einige Extras
eingestellt werden:
-Soll eine Symboltabelle an das Programm gehängt werden (bzw. an den
Debugger übergeben werden)?
-Ferner kann das erzeugte Programm in verschiedenen Formaten
abgespeichern. Möglich sind:
DEBUGGER Sprung in den Debugger mit Programmübergabe (KEIN SPEICHERN)
STANDARD Programm abspeichern (halt ganz normal...)
DATAS Data-Zeilen erzeugen (für OMIKRON.Basic)
ABSOLUT Programm für eine best. Adresse (z.B. EPROM) erzeugen
BASIC spezielles Format für Basic, welches sich selbst reloziert
OMINLINE INLINE-Zeile für OMIKRON-Basic erzeugen
PARALLEL spez.Übertragungsformat zum Amiga
SMALLDRI DRI-Format erzeugen (allerdings OHNE Importe)
GFAINLINE GFA-Inline-Format erzeugen.
FSTANDARD Fast-Load-Bit im Header setzen (ST-Magazin 11/89), sonst wie
STANDARD
2.10 Pseudo-Opcodes des Assemblers
DC, DS, BLK, DCB, EVEN, ALIGN, TEXT, DATA, BSS, END, =, EQU, GLOBAL,
CNOP, ORG, ILLEGAL und REG
wie üblich.
DXSET Länge[,Füllwert] Tabelle definieren
DX 'String' Tabelleneintrag auf Länge mit Füllwert aufgefüllt
RS, RSRESET, RSSET, RSEVEN, RSBSS Relatives Segment
OPT D+ normale Symboltabelle an
OPT X+ erweiterte Symboltabelle an
OPT W+ Warnungen an
OPT P+ PC-relatives Programm muß erzeugt werden
OPT O+ Optimierungen an
Mit '-' kann etwas ausgeschaltet werden
OUTPUT 'Filename' Default-Filename
PATH 'Pfad' Pfad für IBYTES setzen
IBYTES 'DEGAS.PI3',32000,34 Lädt ein Daten-File der Länge 32000 ab Byte
34 der Datei ein (Hier: ein Degas-Bild)
BASE is' viel zu kompliziert...
REPT Anzahl, ENDR wiederholt Anzahl mal den Sourcetextteil zwischen
REPT und ENDR
IF, ELSE, ENDC bedingte Assemblierung
FAIL Assemblierung abbrechen
3 Der Debugger
3.1 Vorwort
Es ist eigentlich unmöglich den Debugger KURZ zu beschreiben, deswegen
hier nur die wichtigsten Befehle (mit HELP kann man alle mal sehen bzw.
in der Anleitung)
3.2 Allgemeines
Der Debugger benutzt selber keine I/O-Routinen des TOS, d.h. er ist
ziemlich unanfällig gegen Abstürze. Bei Lade-Operationen u.ä. wird aber
dann natürlich doch auf's GEMDOS zurückgegriffen.
Er verwaltet eine eigene Bildschirmseite, sodaß Programm und Debugger
sich nicht auf einer gemeinsamen Seite tummeln.
Das Debugging kann sowohl mit Tastatur und Maus erfolgen.
Der Debugger kann resident im RAM gehalten werden, indem er in den
AUTO-Ordner kopiert wird oder mit dem Befehl RESIDENT gehalten wird.
Der Debugger kann dann mit CALL.PRG aufgerufen werden. Auch der
Assembler kann auf den Debugger zugreifen (Er kann ihn aber auch
nachladen).
3.3 Die Bedienung
Die 2 oberen Zeilen entsprechen den Funktionstasten (mit und ohne
Shift). Die 3 Folgezeilen stellen die Registerinhalte und Flags dar.
Alle Teilen in diesen 5 Zeilen können mit der Maus ausgelöst werden.
Die restlichen (max.20 Zeilen) sind frei veränderbar. Hier erfolgen die
Eingaben, die Ausgaben. Hier tobt das Leben...
Die Tastaturbelegung (Cursortasten, CTRL-M, CTRL-1, etc.) ist ähnlich
der des Assemblers.
Eingaben erfolgen stets ab Zeilenanfang bzw. hinter der Hexzahl.
Leerzeichen werden ignoriert bzw. dienen als Trenner.
Wenn der Assembler den Debugger aufgerufen hat, kann man CTRL-HELP
zurückspringen. Dabei wird der aktuelle PC-Stand in eine Zeilennummer
UMGERECHNET. D.h. wenn ein Programm beim Debuggen abgestürzt ist und
der PC im Programm steht, kann man CTRL-HELP zur entsprechenden Stelle
im Sourcetext springen.
Mit SHIFT-SHIFT kann ein laufendes Programm angehalten werden. Der
Ring-Indikator funktioniert allerdings auch. Der Debugger ist zudem
RESETFEST. Als Notbremse ab und zu sinnvoll.
F1 - Führt den nächsten Befehl aus
SF1 - Bricht beim nächsten Sprungbefehl ab. Simuliert den Tracemode des
68020 Prozessors.
F2 - Setzt hinter den nächsten Befehl einen Breakpoint und startet das
Programm. Damit kann z.B. schnell ein Unterprogramm ausgeführt
werden oder ein DBRA beendet werden.
SF2 - nicht weiter wichtig
F3 - Startet das Programm und bricht beim nächsten RTS ab. ACHTUNG!
Wenn mit MOVEM Werte auf dem Stack gerettet werden => Bomb!
SF3 - wie F3 nur bis zum nächsten RTE
F4 - Führt den nächsten TRAP NICHT aus, sondern springt in ihn hinein.
SF4 - Programm ohne Endebedingung starten
F5 - nächsten Befehl ignorieren, d.h. überspringen
SF5 - Insert/Overwrite toggeln
F6 - akt.Directory anzeigen
SF6 - die umgerechneten Marker des Assemblers anzeigen.
F7 - Memorydump ab dem PC
SF7 - Breakpoints anzeigen
F8 - Disassemble mit Dump ab PC
SF8 - Info über die Speicherbelegung
F9 - List ab PC (mit Symbolen, wenn vorhanden)
SF9 - Screen löschen, Warmstart
F10 - Umschalten der Bildschirmseite (Toggeln)
SF10- Quit mit Sicherheitsabfrage
3.4 Die Befehle
Alle Befehle können auf ein Minimum abgekürzt werden. An ALLEN Stellen
sind als Parameter beliebige Ausdrücke erlaubt (d.h. Formeln etc.)
?Term Rechnet den Term aus
Term darf (bis auf Vergleiche) alle Operationen des Assemblers
enthalten. Zudem ist mit {400}.l eine indirekte Adressierung möglich.
".l" gibt dabei die Zugriffsbreite an.
Alle Zahlen werden als HEXZAHLEN angesehen. Dezimalzahlen sind mit "."
einzuleiten. Bei einer Symboltabelle kann man mit ".Symbolname" auf
dieses zugreifen.
Definierte Variablen (ein Teil davon)
^D0-^D7 Die Register D0-D7
^A0-^A7 Der Register A0-A7
PC, USP, SSP, SR, CCR, SP Die gleichnamigen Register
^M0-^M9 Die umgerechneten Marker des Assemblers
Alle obigen Variablen sind mit
LET Variable=Term änderbar.
LET läßt sich mit "~" abkürzen.
Noch ein paar Read-Only-Variablen:
TEXT, DATA, BSS, START, END, BASEPAGE, BP, ACT_PD, MEMBASE, SAVEAREA
Es gibt noch etwa 20-30 weitere nicht so wichtige Variablen.
BREAKPOINT [Nummer=Adresse[,[*|=Wert|Anzahl|?Bedingung]|K]]
Breakpoints anzeigen, löschen, ändern, setzen
B5=PC+.100 Breakpoint 5 (0-15 ist mgl) auf Adresse PC+100 setzen
B K Alle Breakpoints löschen
B Alle Breakpoints anzeigen
BK3 Breakpoint 3 löschen
B0=Adr,Anzahl : Breakpoint bricht beim Anzahl. Erreichen ab.
B0=Adr,* : Breakpoint bleibt auch nach dem Erreichen erhalten.
Normale Breakpoints werden automatisch gelöscht.
B0=Adr,=Wert : Zähler auf die Adresse Adr setzen. In ^BC0 wird
hochgezählt wie oft die Adresse erreicht wurde.
B0=Adr,?Term : Bedingter BKPT, Abbruch, wenn Term<>0
z.B. B0=Adr,?^D0=4711 => Abbrucht, wenn PC=Adr UND D0=$4711
GO [Adr] : Programm an Adresse Adr, bzw. PC starten
TRACE : Wie F1
SHOWMEMORY Term : 16 Bytes ab Term stets anzeigen
UNTRACE [Adr] : solange Tracen, bis Bedingung erfüllt
IF Term : Bedingung für UNTRACE
OBSERVE Trapno,Funkno : Abbruch, wenn Trapno(Funktion) ausgeführt wird.
z.B. OBSERVE 14,8 : Abbruch bei XBIOS(8) = Floprd()
CLS : 2.Bildschirmseite löschen
MOUSEON
MOUSEOFF : VDI-Maus an/aus
|Befehl : Befehl ausführen (zum Testen echt prima)
LEXECUTE "Filename"[,"Commandline"] : Programm ausführbar laden (=>
Pexec()) Dann mit GO zu starten.
LOAD "Filename"[,Adresse] : File nicht ausführbar laden
SAVE ["Filename"[,Adresse[,Endadresse]]] : File abspeichern
DIR Pfadmaske : Directory anzeigen
Pbefehl : P vor einem Befehl leitet diesen zum Drucker um
FOPEN Filename
Fbefehl : Ausgabe eines Befehls in eine Datei
FCLOSE
ERASE, KILL Filename : Datei löschen (mit Jokern!)
FREE : Freier Hauptspeicher
FREE Drive : Freier Platz auf einem Laufwerk
MKDIRECTORY Name : Ordner erstellen
RMDIRECTORY Name : Ordner löschen (wenn leer)
NAME oldname,newname : File umnennen
FATTRIBUT Filename,attribut : File-Attribut ändern/setzen
FORMAT DS/SS,Laufwerk : Disk formatieren
TYPE Filename : ASCII-Datei anzeigen (SPACE hält Ausgabe an)
READSEKTOR Track,Sektor,Seite,Adresse,Laufwerk (0 oder 1)
Sektor mit XBIOS(8) einlesen
WRITESEKTOR s.o.
Sektor mit XBIOS(9) schreiben
Alle in diesem Abschnitt angegebenden Befehle erlauben den gleichen
Syntaxbei den Parametern, der deswegen an dieser Stelle erklärt wird,
und im folgenden nur noch mit [Parameter] bezeichnet wird.Es gilt also:
[Parameter] = [Von][[,]#[Zeilen]|,Bis|[,][Bytes[]]]
Es sind also alle Parameter wahlfrei, d.h. man braucht keine
Parameterangeben. Der Debugger nimmt dann vorgegebene interne Werte.
Wenn der Ausdruck "Von" fehlt, wird ab der aktuellen Adresse
z.B.disassembliert. Die aktuelle Adresse ist die Zahl am Zeilenanfang,
bzw.wenn diese fehlt, die zuletzt benutzte Adresse.
Als Endadresse gilt der Ausdruck "Bis", der jedoch nicht angegeben
werdenmuß. Wird statt "Bis" ein "#" angegeben wird genau eine Zeile
ausgegeben. Ein dem "#" folgender Term, gilt als Zeilenanzahl.Es können
somit z.B. genau 8 Zeilen ausgegeben werden. Es werden jedochmaximal 99
Zeilen ausgegeben.Fehlt die Endangabe gänzlich, werden (normalerweise)
16 Zeilen ausgegeben.Die Anzahl läßt sich jedoch einstellen, indem man
die Variable "Lines" entsprechend ändert.Die letzte Möglichkeit ist die
Angabe der Byteanzahl in eckigen Klammern.Sie kann genauso, wie die
Zeilenanzahl angegeben werden. Die "]" ist optional, d.h. man kann sie
auch weglassen.
Beispiel:
"d text #5"
Disassembliert 5 Zeilen ab Anfang des geladenen Programms.
Beispiel:
"m data[30]"
Ein Memorydump des DATA-Segments (48 Bytes lang).
DISASSEMBLE [Parameter] Disassemble mit Dump
Dump kann geändert werden!
LIST [Paramter] Disassemble ohne Dump mit Symbolen
Opcodes können geändert werden (RETURN nicht
vergessen)
SYMBOLTABLE [Parameter] evtl. vorhandene Symboltabelle anzeigen
MEMORY[.B|.W|.L][Parameter] Memorydump mit Ausgabebreite (Änderbar)
ASCII [Parameter] ASCII-Dump (Änderbar)
FIND [Von,Bis],Terme{,Term} geladenes Programm oder Speicherbereich
nach den Termen durchsuchen
HUNT s.o. wie Find, jedoch nur auf geraden Adressen
ASCFIND [Von,Bis],String ASCII-Suche im Disassemblerlisting (mit
Jokern). Langsam, aber ab und zu praktisch
CONTINUE Hunt, Find oder ASCFIND fortsetzen, wenn mit
ESC abgebrochen
INFO mal ausprobieren
SYSINFO auch mal ausprobieren
MOVE, COPY Von,Bis,Nach Speicherblock kopieren
FILL Von,Bis,Term{,Term} Speicherblock füllen
CLR [Von,Bis] Speicherblock löschen (oder alles)
COMPARE Von,Bis,Adr Bereich Von,Bis mit Bereich ab Adr vergleichen
EXIT, QUIT, SYSTEM Debugger verlassen
RESIDENT Debugger resident halten
SET, LET, ~ siehe oben
RESET ALL Debugger-Kaltstart
HELP Gibt alle Befehle unsortiert aus (wie man
sieht, ein paar mehr als hier beschrieben)
4 Was bringt die Zukunft?
Nun, daß hängt sehr vom Erfolg der Shareware-Konzeptes ab. Sicher, wir
machen weiter, aber ob wir einen 68020/30 Assembler mit FPU- und
PMMU-Support (Atari TT) mit Makros, lokalen Symbolen etc. als Shareware
rausbringen? Nun, wenn es sich lohnt immer..
Was kommt denn als nächstes?
Erstmal soll man für das DRI-Linkformat die PC-relativen Optimierungen
über Segmentgrenzen abschalten können (speziell für Laurenz Prüßner).
Dann können keine Probleme mehr beim Linken auftreten.
Der Sourcecode-Debugger ist schon ganz nett (wenn auch bei Sourcetexten
mit >10000 Zeilen recht langsam => Arbeit, Arbeit,... ), kann man doch
jederzeit gucken, an welcher Stelle der PC im Sourcetext steht, ohne in
den Assembler zurückzumüssen. Die Remarks zu sehen ist ja auch nicht
schlecht. Und das tollste: das Ganze spart auch noch Platz! Beim
normalen Debuggen wird eine Symboltabelle benötigt, beim
Sourcecode-Debugging wird dagegen laufend umgerechnet, wo der PC im
Sourcetext steht (und das recht fix (bei Sourcetexten <10000 Zeilen,
s.o.)).